#include<bits/stdc++.h>
using namespace std;
const int MAXN=100100;
//[0]:live [1]:r [2]:have acted
struct Duel
{
    bool islive=1;
    int r;
    bool act=1;
}duel[MAXN];
bool cmp(Duel i,Duel j){
    return i.r<j.r;
}
int main(){
    freopen("duel.in","r",stdin);
    freopen("duel.out","w",stdout);
    int i=1,j=0;
    int n,cnt=0;
    cin>>n;
    for(int i=0;i<n;i++)cin>>duel[i].r;
    // sort(duel,duel+n,cmp);
    // while (i<=n-1 && j<=n-1)
    // {
    //     if(i==j)j++;
    //     if(i==n-1 || j>=n)continue;
    //     if(duel[i].islive && duel[i].act){//can act
    //         if(duel[i].r>duel[j].r){
    //             duel[i].act=0;
    //             duel[j].islive=0;
    //             i++;j++;
    //         }else{
    //             j++;
    //         }
    //     }else i++;
    // }

    sort(duel,duel+n,cmp);
    while (i<=n-1 && j<=n-1)
    {
        if(i==j)i++;
        if(duel[i].islive && duel[i].act){//can act
            if(duel[i].r>duel[j].r){
                duel[i].act=0;
                duel[j].islive=0;
                i++;j++;
            }else{
                i++;
            }
        }else i++;
        //if(i==n-1 || j>=n)break;
    }


    for(int i=0;i<n;i++)
        if(duel[i].islive)
            cnt++;
    cout<<cnt;
    fclose(stdin);
    fclose(stdout);
    return 0;
}